package com.boss.redis.util.distributedlock.properties;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;


@Data
@Configuration
public class RedissonProperties {

    /**
     * redis主机地址，ip：port，有多个用半角逗号分隔
     */
    @Value("${spring.redis.address:localhost:6379}")
    private String address;
    /**
     * 连接类型，支持standalone-单机节点，sentinel-哨兵，cluster-集群，masterslave-主从
     */
    @Value("${spring.redis.type}")
    private String type;
    /**
     * redis连接密码
     */
    @Value("${spring.redis.password}")
    private String password;
    /**
     * 选取那个数据库
     */
    @Value("${spring.redis.database:0}")
    private int database;

    /**
     * 主节点名称
     */
    @Value("${spring.redis.master:mymaster}")
    private String master;

    /**
     * 最大空闲连接数, 默认8个；
     */
    @Value("${spring.redis.maxIdle:8}")
    private Integer maxIdle;

    /**
     * 最大连接数, 默认8个
     */
    @Value("${spring.redis.maxTotal:8}")
    private Integer maxTotal;

    /**
     * 最小空闲连接数, 默认0
     */
    @Value("${spring.redis.minIdle:0}")
    private Integer minIdle;

    /**
     * 逐出连接的最小空闲时间 默认1800000毫秒(30分钟)
     */
    @Value("${spring.redis.minEvictableIdleTimeMillis:1800000}")
    private Integer minEvictableIdleTimeMillis;

    /**
     * 每次逐出检查时 逐出的最大数目 如果为负数就是 : 1/abs(n), 默认3
     */
    @Value("${spring.redis.numTestsPerEvictionRun:3}")
    private Integer numTestsPerEvictionRun;

    /**
     * 逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1
     */
    @Value("${spring.redis.timeBetweenEvictionRunsMillis:-1}")
    private Integer timeBetweenEvictionRunsMillis;

    /**
     * 在获取连接的时候检查有效性, 默认false
     */
    @Value("${spring.redis.testOnBorrow:false}")
    private Boolean testOnBorrow;

    /**
     * 在空闲时检查有效性, 默认false
     */
    @Value("${spring.redis.testWhileIdle:false}")
    private Boolean testWhileIdle;




}
